<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>关于ambari二次开发-集成自定义组件的一些理解 | rongshen</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
  
  
<link rel="stylesheet" href="/css/style.css">

  
    
<link rel="stylesheet" href="/css/highlight.css">

  
  <meta name="description" content="目前网上对于ambari的二次开发详细的说明太少，我也不知道怎么可以讲清楚。因为目前我也不是很理解这其中的原理，作为对于自己的一个锻炼，先写一篇博客作为一个先导。">
<meta property="og:type" content="article">
<meta property="og:title" content="关于ambari二次开发-集成自定义组件的一些理解">
<meta property="og:url" content="http://example.com/2020/06/22/%E5%85%B3%E4%BA%8Eambari%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91-%E9%9B%86%E6%88%90%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6%E7%9A%84%E4%B8%80%E4%BA%9B%E7%90%86%E8%A7%A3/index.html">
<meta property="og:site_name" content="rongshen">
<meta property="og:description" content="目前网上对于ambari的二次开发详细的说明太少，我也不知道怎么可以讲清楚。因为目前我也不是很理解这其中的原理，作为对于自己的一个锻炼，先写一篇博客作为一个先导。">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a2.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a4.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a1.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a3.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a7.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a5.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a8.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a9.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a6.png">
<meta property="og:image" content="http://cdn.rongshen2020.com/2020622a10.png">
<meta property="article:published_time" content="2020-06-22T07:54:46.000Z">
<meta property="article:modified_time" content="2020-06-22T09:08:20.251Z">
<meta property="article:author" content="John Doe">
<meta property="article:tag" content="HDP,Ambari">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://cdn.rongshen2020.com/2020622a2.png"><meta name="generator" content="Hexo 6.1.0"></head>

<body>
  <div id="wrapper">
    <header id="header">
  <h1 id="title">
    <a href="/">rongshen</a>
  </h1>
  <nav>
    
    
      
      <a class="nav-link" href="/">Home</a>
    
      
        <span class="nav-spacer">×</span>
      
      <a class="nav-link" href="/archives">Archives</a>
    
      
        <span class="nav-spacer">×</span>
      
      <a class="nav-link" target="_blank" rel="noopener" href="https://github.com/Aaron-boom">Github</a>
    
      
        <span class="nav-spacer">×</span>
      
      <a class="nav-link" href="/2020/04/13/About-Me/">About</a>
    
    
  </nav>
</header>

    <div id="content">
      <article id="post-关于ambari二次开发-集成自定义组件的一些理解" class="article article-type-post" itemprop="blogPost" itemscope>
  <div class="article-inner">
    
      <header class="article-header">
        
  
    <h2 class="article-title" itemprop="headline name">
      关于ambari二次开发-集成自定义组件的一些理解
    </h2>
  


        <div class="article-meta">
          <time class="article-date" datetime="2020-06-22T07:54:46.000Z" itemprop="datePublished">2020-06-22</time>

          
        </div>
      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
      
        <blockquote>
<p>目前网上对于ambari的二次开发详细的说明太少，我也不知道怎么可以讲清楚。因为目前我也不是很理解这其中的原理，作为对于自己的一个锻炼，先写一篇博客作为一个先导。</p>
</blockquote>
<span id="more"></span>

<h1 id="1-集成组件的简单介绍："><a href="#1-集成组件的简单介绍：" class="headerlink" title="1. 集成组件的简单介绍："></a>1. 集成组件的简单介绍：</h1><p>我们看到ambari在大数据的平台搭建上可以做到一键部署，十分的方便。但是在对于其提供的软件和组件之外的一些软件（例如tomcat），其并没有提供支持（一键部署与监控）。我之前的《hdp和ambari版本速查》博客中写过，你可以查询到你所安装的hdp版本所支持的组件。</p>
<ul>
<li>下图是我集成了tomcat后在ambari上的大致显示：</li>
</ul>
<p><img src="http://cdn.rongshen2020.com/2020622a2.png"></p>
<ul>
<li>其代码大致结构，如下：</li>
</ul>
<p><img src="http://cdn.rongshen2020.com/2020622a4.png"></p>
<h1 id="2-快速上手："><a href="#2-快速上手：" class="headerlink" title="2. 快速上手："></a>2. 快速上手：</h1><ul>
<li>在你安装ambari-server的主机上，进入以下的文件夹，你会发现：<br><img src="http://cdn.rongshen2020.com/2020622a1.png"></li>
</ul>
<p>这里有很多栈的版本，在之前安装ambari时，我们是都已经选择过对应的栈的版本。</p>
<ul>
<li>进入对应的栈后，我们会发现这其中的大致结构：<br><img src="http://cdn.rongshen2020.com/2020622a3.png"></li>
</ul>
<p>这是我自己集成的tomcat的大致结构。主要分为四大部分，下面我会详细介绍下。</p>
<h2 id="2-1、configuration文件夹："><a href="#2-1、configuration文件夹：" class="headerlink" title="2.1、configuration文件夹："></a>2.1、configuration文件夹：</h2><ul>
<li>configuration文件夹里主要是xml文件。这里面体现在ambari前端界面就是，你可以自定义自己的配置信息，如下图所示：<br><img src="http://cdn.rongshen2020.com/2020622a7.png"><br><img src="http://cdn.rongshen2020.com/2020622a5.png"></li>
</ul>
<h2 id="2-2、metainfo-xml文件："><a href="#2-2、metainfo-xml文件：" class="headerlink" title="2.2、metainfo.xml文件："></a>2.2、metainfo.xml文件：</h2><ul>
<li>描述了对整个项目的约束配置，是一个 核心 文件。也就是你整个服务的安装需要服从该文件里面的配置。<br><img src="http://cdn.rongshen2020.com/2020622a8.png"></li>
</ul>
<h2 id="2-3、package文件夹："><a href="#2-3、package文件夹：" class="headerlink" title="2.3、package文件夹："></a>2.3、package文件夹：</h2><ul>
<li>该文件夹里面主要是python代码。用来控制组件的安装，启动，暂停等一些生命周期的操作。其原理是python控制shell脚本来操作。<br><img src="http://cdn.rongshen2020.com/2020622a9.png"></li>
</ul>
<h2 id="2-4、quicklinks文件夹："><a href="#2-4、quicklinks文件夹：" class="headerlink" title="2.4、quicklinks文件夹："></a>2.4、quicklinks文件夹：</h2><ul>
<li>这里面是一个json文件，用来控制跳转的。也就是图片中对应的这个功能。<br><img src="http://cdn.rongshen2020.com/2020622a6.png"></li>
</ul>
<h1 id="3-怎么部署服务？"><a href="#3-怎么部署服务？" class="headerlink" title="3. 怎么部署服务？"></a>3. 怎么部署服务？</h1><p>这一步很简单，当你写好代码后，主要是将整个代码的文件夹，放入到对饮的栈文件夹下，之后重启ambari server服务。若报错，请连其他节点的ambari agent服务一起重启。</p>
<ul>
<li>在界面的add service 上就可以快速部署你的服务了：<br><img src="http://cdn.rongshen2020.com/2020622a10.png"></li>
</ul>
<h1 id="参考："><a href="#参考：" class="headerlink" title="参考："></a>参考：</h1><p><a target="_blank" rel="noopener" href="https://cwiki.apache.org/confluence/display/AMBARI/Ambari">https://cwiki.apache.org/confluence/display/AMBARI/Ambari</a></p>

      
    </div>
    
    
    <div class="article-category">
      
        <b>Categories:</b>
        <a class="article-category-link" href="/categories/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%B9%B3%E5%8F%B0/">大数据平台</a>
      
      
        <br/>
      
      
        <b>Tags:</b>
        <a class="article-tag-none-link" href="/tags/HDP-Ambari/" rel="tag">HDP,Ambari</a>
      
    </div>
    
    
  </div>
</article>

  
<nav id="article-nav" class="article-nav">
  
    <a href="/2020/06/30/%E2%80%9C%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8A%E9%83%A8%E7%BD%B2%E4%B8%80%E4%B8%AA%E5%89%8D%E5%90%8E%E7%AB%AF%E5%88%86%E7%A6%BB%E9%A1%B9%E7%9B%AE%EF%BC%88%E8%8B%A5%E4%BE%9D-ruoyi%EF%BC%89%E5%AE%9E%E9%AA%8C%E2%80%9D/" id="article-nav-newer" class="article-nav-link-wrap newer">
      <strong class="article-nav-caption">Newer</strong>
      <div class="article-nav-title">
        
          “虚拟机上部署一个前后端分离项目（若依-ruoyi）实验”
        
      </div>
    </a>
  
  
    <a href="/2020/06/17/%E8%A7%A3%E5%86%B3ambari%E7%95%8C%E9%9D%A2quickLinks%E9%93%BE%E6%8E%A5%E6%97%A0%E6%95%88/" id="article-nav-older" class="article-nav-link-wrap older">
      <strong class="article-nav-caption">Older</strong>
      <div class="article-nav-title">
        
          解决ambari界面quickLinks链接无效
        
      </div>
    </a>
  
</nav>






    </div>
  </div>
  




<div id="settings-container">
  <div id="dark-mode">dark</div>
  <div id="sans-font">sans</div>
</div>
<script type="text/javascript">
let d=document,r=d.documentElement.style,f=r.setProperty.bind(r),l=localStorage,s=l.getItem('s')||(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches),n=l.getItem('n'),m=d.getElementById("dark-mode"),b=()=>{f('--bg-color','#fafafa');f('--code-bg-color','#f4f4f4');f('--text-color','#212121');f('--secondary-color','#808080');f('--tertiary-color','#b0b0b0');f('--link-color','#b5c8cf');f('--link-hover-color','#618794');f('--link-bg-color','#dae4e7');f('--selection-color','#dae4e7');m.innerHTML="dark"},c=()=>{f('--bg-color','#212121');f('--code-bg-color','#292929');f('--text-color','#fff');f('--secondary-color','#c0c0c0');f('--tertiary-color','#6e6e6e');f('--link-color','#4d6b75');f('--link-hover-color','#96b1bb');f('--link-bg-color','#5d828e');f('--selection-color','#acc1c9');m.innerHTML="light"},o=d.getElementById("sans-font"),e=()=>{f('--body-stack','"Lora", "Georgia", "Times New Roman", serif');o.innerHTML="sans"},g=()=>{f('--body-stack','"Lato", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "Verdana", sans-serif');o.innerHTML="serif"};m.onclick=()=>{if(s==2){s=1;l.setItem('s',s);c()}else{s=2;l.setItem('s',s);b()}};o.onclick=()=>{if(n==2){n=1;l.setItem('n',n);g()}else{n=2;l.setItem('n',n);e()}};if(!s){s=2;l.setItem('s',2)};if(s==1){c()};if(!n){n=2;l.setItem('n',2)};if(n==1){g()};
</script>




</body>
</html>
